MO> Jud, in that case hit the down-arrow to get the
MO> history-list of previous search strings.
JM> But that still requires more keystrokes than 4.0 - 5.5 did.
Counting keystrokes isn't meaningful. I type fast enough that it makes no
difference to me whether I type 1 or 2 keys, as long as I know what to type.
With the 5.5 style search options, there's no hint as to what's available.
You have to
memorize them. In 5 years of using those ugly searches, I never bothered
to learn all the options - e.g. I still don't know what L means. I think
that I use TP more intensively than most people, so I'd guess that if I never
learned all the
options, most other people didn't either.
You should read that article on interface design in Computer Language (Feb
92, p. 42). It's very well written, and makes a lot of sense. One of the
points it makes is that if options aren't presented to the user, then chances
are the user
will never know about them. Users don't want to learn interfaces, they
want to get their work done.
Upgrades are different, of course. You've already made the investment in
the TP-Wordstar interface. I think that's the main basis of your objection
- you, like everyone else, don't want to waste time learning a new interface.
The point of
the new design is that you don't need to memorize as much as you did before,
and there's the promise of being able to use your knowledge in other SAA/CUA
programs.
By the way, once you get used to it, the TP 6.0 search & replace system is
much more capable than the 5.5 one. I've mentioned regular expressions;
there's also the history list. If you want the 3rd previous search instead
of just the one before,
it's available. This is handy when you're doing a complicated search, and
you want to look at something else - you can save your current spot (Ctrl-K-1,
as in 5.5), search for something else, then return and continue. In 5.5,
you'd have to
re-enter the old search key from scratch.
I'll also admit that I have used the default search key on one or two occasions.If you point at the declaration of an identifier, you can search for uses
of it very quickly - Ctrl-Q-F-Enter. I don't think that should be the default
though;
more often I do Ctrl-Q-F-Down-Enter-(edit)-Enter, so that should be the
JK> The thing to remember about ANY computer language is that
JK> 75-90% of the time you spend is going to be with pencil and
JK> paper.
JK> I'll disagree with that, I only use pencil and paper when
JK> taking notes on ideas, and occaisionally on debugging, but
JK> figuring out the mathematics or something like that, let TP
JK> 6.0 do that for you...so I'd say the total time I spend
JK> using pencil and paper to program is about 7%, no where near
JK> 75-90%...
Your figure is probably accurate for most "hobby" programmers. In fact some
may have a figure closer to 0% ! Serious or professional developers working
on a project would easily spend *at least* 75% of the time allocated on the
analysing,
planning, functional specifications and test specifications, before one
line of code is written.
As an example, the project I'm currently involved with, the software represents
a nine month development effort. Our schedule only calls for coding to commencein the twelfth week of the project and even then it only represents less
than 30%
of the time expended, with documentation and acceptance tests taking much
more than that. The functional specs and the test specs alone will occupy
ten weeks of those first twelve weeks.
TeeCee
* Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
And yet later in the message you say..."I can't use it anyway on my bread
and butter program because [TP6IDE] uses too much memory.". I would have
thought that means that you *definitely* need it, or as an absolute minimum
you need TPC.
JM> ... and have no need for BASM.
For any serious programming some assembler is unavoidable. (I too avoid
it like the plague but there are times when it is impossible to produce an
efficient and professional program without it.) Therefore BASM is a real
bonus. The use of
third party toolboxes such as TPro and OPro help a great deal here, as so
much of the detailed asm work is done by them for you, but some assembler
is still essential at times.
JM> ... I don't know what you mean by "extended functions".
TP6's extended functions - the ability to use a function as if it was a
procedure - can be very useful.
JM> ... The 286 instructions made only a 2% difference in my
JM> tests.
2% is 2% is 2%. Every little helps.
JM> ... (Some of my clients are still running on 8088 too.)
Nothing stops you producing two versions.
JM> I've looked at Brief, TPE, and QEdit and found them all
JM> lacking compared to the TP IDE.
I don't think I am aware of ONE thing that they cannot do that the IDE does
(apart from display a Borland Copyright notice :-) ), and they have MANY
functions not available in the IDE - some insignificant but some really major.
JM> However, none of them have the absolutely wonderful
JM> integrated debugger in TP 5.x. That is such a wonderful
JM> tool I don't think I will ever give it up. You'll have to
JM> kill me first and pry it out of my clenched fingers!
Why give it up just because you give up the IDE? I use TD and I guarantee
that
you would not be able to tell the difference if it were not for the added
power and different screen displays.
JM> No, the 6.0 package is not as good as the 5.5 one because of
JM> two main reasons (1) the 6.0 IDE is not designed to be
JM> functional...
Very subjective but you state it as if it were fact. There are some minor
things I would probably agree with you on, if indeed everything you have
highlighted is true. As I don't use it (I tried it briefly and did not like
it), I'll take your
word for that even allowing for all the foregoing. In any event, most informedopinions seem to agree that the TP6IDE is much closer to being a professional
grade environment than is the TP5IDE.
Most arguments about not using a professional grade editor instead of the
IDE
revolve around the following -
"I want to have my error highlighted and be returned to that spot in
the
file when it occurs."
Available in the professional editors.
"I like the integerated debugger"
Available in just as easy to use mode in more powerful - but just as
easy to use - stand alone debugger providing the necessary care is taken
in the initial setting up.
"I like the help system"
Available - in improved form in the professional setups. In fact you
can
integrate your own personal libraries of functions and procedures into
it.
"I like to compile/run programs from the editor"
This is something that shouldn't be done except on small Q&Ds. However
the equivalent is available from a professional setup. And it is safer.
There are others but they are probably the main ones.
I like the added power that a professional type editor environment gives
me because -
- I can set it up *exactly* to my liking.
- I can cut/paste etc between multiple files using one keypress.
- I can "precompile" using a precompiler I am developing.
- I can compile bigger programs more easily.
- I can edit more than one file at a time and although I don't think any
of my source files have ever exceeded 64K, I do not have that limitation
should it happen.
- I have available on-line tools such as hex calculator, ascii reference,
library reference, interrupt tables etc. etc.
- I can edit and assemble or compile in different languages at the same time.
- I have begin/end and bracket matching.
- I can have extensive keyboard macros.
JM> ... I don't forsee a time that I'll ever do assembler...
I just cannot believe that a *serious* programmer can logically say that
and expect to be taken even half seriously by other programmers.
TeeCee
* Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
TT> Not sure of the difference. I'm trying to make a demo
TT> program thatwill only run a certain number of times and
TT> won't be thwarted by DOScopy or diskcopy. Tech support at
TT> Borland said self modifying codebut couldn't give any
TT> references. Trying to find an example somewhereand would
TT> appreciate any leads.
It really depends on how much trouble you wish to expend in preventing unauthoriuse. Nothing is foolproof but here are some things that can be done that
will prevent all but the most sophisticated of users -
1. Put all details in a coded configuration file (including the counter)
which is rewritten in full every execution using a different coding key.
The coding key can be calculated by algorithm determined by key bytes in
the file.
2. Include in that configuration file a "snapshot" of vitals which in combinatioare likely to be unique to that machine. eg. Volume labels and serial numbers,
CMOS configuration, root directory signature etc.
3. Personalise the demo copies.
4. Have a hardcoded date limitation.
etc.
TeeCee
* Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
> fraction of the proposed changes to ISO Pascal appear
> in Borland's next TP it will have been well worth it.
RM> Perhaps, you may wish to elaborate on some of the jucier proposed changes.
Here's a message I saw recently on Usenet:
Article 10027 of comp.lang.pascal:
From: reagan@hiyall.enet.dec.com (John R. Reagan)
Newsgroups: comp.lang.pascal
Subject: Re: Extended Pascal: What are the extensions?
Date: 17 Feb 92 14:21:35 GMT
Organization: Digital Equipment Corporation
In article <iz4Hacaj5@cs.psu.edu>, so@csp.cs.psu.edu (Nicol C. So) writes...
>Yesterday I saw the 4th edition of "Pascal User Manual and Report" in our
>library here. In the forewords(?), it was mentioned that the drafting of
>the standard
of an Extended Pascal is underway. Does anyone out there know >anything
about Extended Pascal? In particular, what are the extensions?
The 4th edition of the Pascal User Manual and Report is not Extended Pascal.
The 4th edition is just a revised version of the previous book with minor
typos and ambigiuities corrected.
However, Extended Pascal is finished (it was ratified in late 1989) and availablfrom the IEEE. The IEEE order number is SH13243. The cost is around $50US.
Before the list of features, I'll talk about availability... To the best
of my knowledge, there is no complete implementation of Extended Pascal yet
(as of 17-Feb-1992).
However, there are several vendors that have announced plans to add features
from Extended Pascal. I won't speak for them.... The one I *can* speak
of is VAX Pascal. VAX Pascal V4.n contains many, but not all, of the new
features from Extended
Pascal and many of VAX Pascal's extensions are now standard features in
Extended Pascal.
There are some popular features (namely object oriented support and exception
handling) that are missing from the Extended Pascal standard. The committee
is aware of the need for these features, but didn't get them finished for
the standard.
The committee expects to release technical reports in the coming year on
both of these areas.
Enjoy!
-John Reagan, VAX Pascal Project Leader &
X3J9 Secretary
Features of Extended Pascal (from the foreword of the standard):
- Modularity and Separate Compilation. Modularity provides for
separately-compilable program components, while maintaining type
security.
o Each module exports one or more interfaces containing entities
(values, types, schemata, variables, procedures, and functions)
from that module, thereby controlling visibility into the module.
o A variable may be protected on export, so that an importer may use
it but not alter its value. A type may be restricted, so that its
structure is not visible.
o The form of a module clearly separates its interfaces from its
internal details.
o Any block may import one or more interfaces. Each interface may
be used in whole or in part.
o Entities may be accessed with or without interface-name qualification.
o Entities may be renamed on export or import.
o Initialization and finalization actions may be specified for each
module.
o Modules provide a framework for implementation of libraries and
In a program I'm writing, I forgot that, and coded
S := New(PBufStream, Init(filename, 2048, stCreate));
This introduced a bug that was really dangerous, and really hard to find.
That declaration looks fine, and the compiler accepts it, but it's very
wrong.
The way the Mode word is used is as the AX value in an INT 21 call. This
works because the stXXXX constants are set up for it: stCreate is $3C00
(DOS Create file call), stOpen is $3D02 (DOS Open file, read/write mode)
etc.
However, when you make the switch as I did above, you get something completely
new. *TBufStream.Init doesn't check that the Mode word is valid!* Give
it a value of 2048, and it merrily goes ahead and calls DOS service 8, since
2048=$0800.
Luckily, service 8 is "Read without Echo", not "Trash all work that's not
backed up", so you just get a very perplexing pause in your program.
If you happen to ask for a buffer size of anywhere from 2304 to 2560 bytes,
you'll write the filename (and a bunch of junk, until DOS finds a $) to standardoutput. If you ask for one of 9480 bytes, you'll redirect the system timer
interrupt
to point to your filename. It probably won't be pretty.
uses
objects;
var
s : TBufStream;
begin
s.init('This is a funny way to write a message.$',2400,stOpen);